package br.com.games.daedal;

import java.util.List;

import br.com.games.hefesto.Team;

/**
 * Definição de um vertex do jogo (uni dois pontos)
 * @since 2013
 * @author <li><em>fernando.schindler@gmail.com</em></li>
 */
public interface Vertex {
	/**
	 * Vai indicar se esse vertex foi ativado no jogo
	 * @return {@link Boolean} com true caso esteja ativo
	 */
	Boolean isActive();
	
	/**
	 * 
	 * @param value
	 */
	void setActive(Boolean value);
	
	/**
	 * 
	 * @return
	 */
	List<Box> getOweners();
	
	/**
	 * Valor antes de estar sobre analise
	 */
	Boolean valueBeforeAnalise();
	
	/**
	 * Retorna a posição dessa aresta
	 * @return [ x ori, y ori, x dest, y dest ]
	 */
	int [] getLocation();

	/**
	 * Modo para analise futuros movimentos
	 * @param value
	 */
	void setAnalyzeMode(Boolean value);
	
	/**
	 * Recuperar o time que completou esse vertex
	 * @return {@link Team}
	 */
	Team getTeam();
	
	/**
	 * Ajustar o dono
	 * @param team
	 */
	void setTeam(Team team);
}
